using namespace std;
#ifndef ROOM_H_
#define ROOM_H_
class room
{
  private:
  
  public:
  int x;
  int y;
  int w;
  int h;
  Color color;
  
  room();
  room(int nx, int ny, int nw, int nh, Color color = Color(black, black)); //Returns a room object with these coordinates and colors
};
#endif


#ifndef BOARD_H_
#define BOARD_H_
class board
{
    private:
    vector<room> rooms;
    public:
    
    terrain data[100][100]; //Contains the map data
    int screenx; //Camera controls. Offset.
    int screeny; //Camera controls. Offset.
    board(); //Makes empty boards.
    void make(); //Makes a board
    void draw();
    void buildRoom(); //Builds a random room.
    room buildRandomRoom() const; // maybe change the names around a bit...
    room buildNonCollidingRoom() const;
    bool checkCollideWithExistingRoom(const room newRoom) const;
    bool buildHallway(room one, room two); //Builds a hallway between the two points given.
    room buildVertHallway(int x1, int y1, int x2, int y2);
    room buildHorzHallway(int x1, int y1, int x2, int y2);
    void drawVHallway(room seg);
    void drawHHallway(room seg);
    void updateRect(room space);
    char getChar(int x, int y);
    
    int playerx;
    int playery;
    char playershape;
    void exploreRect(room space);
    bool movePlayer(int x, int y);
    void scrollCamera(int x, int y);
    void scrollCameraSilent(int x, int y);
    void centerCamera();
    void randomEncounter(int x, int y);
};
#endif
